// function setTime(value){
//     return new Promise((resolve,reject)=>{
//         setTimeout(resolve,value);
//     })
// }
// async function asyncPrint(value,msg){
//     await setTime(value);
//     console.log(msg);
//     await setTime(value + 3000)
//     return 'haha';
// }
// // asyncPrint(2000,'Hello,world').then(res=>{
// //     console.log(res);
// // })
// // Hello,world
// // haha
//
// async function setDate(time){
//     return await new Promise((resolve,reject)=>{
//         setTimeout(()=>{
//             console.log('resolve')
//             resolve();
//         },time);
//     })
// }
// async function printDate(msg,time){
//     await setDate(time);
//     console.log(msg)
// }
// printDate('hello,alice',2000)

// async function asyncPrint(){
//     throw new Error('出错了');
// }
// asyncPrint().then(res=>{
//     console.log(res)
// },err=>{
//     console.log(err)
// })

function firstStep(){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('firstStep')
            resolve && resolve();
        },3000);
    })
}
function secondStep(){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('secondStep')
            resolve && resolve();
        },5000);
    })
}
function thirdStep(){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('thirdStep')
            resolve && resolve();
        },7000);
    })
}
async function asyncPrint(){
    console.log('start')
    await firstStep();
    console.log('middle')
    await secondStep();
    await thirdStep();
    console.log('end')
    return 'hello,async';
}
asyncPrint().then(res=>{
    console.log(res)
},err=>{
    console.log(err)
})